﻿using System;
using System.Web.UI.WebControls;

namespace Web.forms
{
    public partial class Periodos : Pagina
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
                Cargar_GridView();
        }

        private void Cargar_GridView()
        {
            mMensaje = "";

            grvPeriodos.DataSource = BLL.Periodos.ObtenerPeriodos(ref mMensaje);
            grvPeriodos.DataBind();

            if (!string.IsNullOrEmpty(mMensaje))
                PopUpMessage(mMensaje);
        }

        protected void btnGrabar_Click (object sender, EventArgs e)
        {
            if (txtDescripcionPeriodo.Text.Trim().Length <= 0)
            {
                txtDescripcionPeriodo.Focus();
                PopUpMessage("Debe ingresar la descripción del período");
                return;
            }

            var vMensaje = "";

            BLL.Periodos.ActualizarGlosaPeriodo(lblPeriodo.Text, txtDescripcionPeriodo.Text.Trim(), ref vMensaje);

            pnlEdicion.Visible = false;

            Cargar_GridView();

            PopUpMessage(vMensaje);
            return;
        }

        protected void grvPeriodos_SelectedIndexChanged(object sender, EventArgs e)
        {
            lblPeriodo.Text = ((Label)grvPeriodos.SelectedRow.FindControl("lblPeriodo")).Text;
            txtDescripcionPeriodo.Text = ((Label)grvPeriodos.SelectedRow.FindControl("lblDescripcionPeriodo")).Text;
            lblFechaCargaSAP.Text = ((Label)grvPeriodos.SelectedRow.FindControl("lblFechaCargaSAP")).Text;
            lblGlosaEstado.Text = ((Label)grvPeriodos.SelectedRow.FindControl("lblGlosaEstado")).Text;

           pnlEdicion.Visible = true;
        }

        protected void grvPeriodos_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName != "Eliminar") return;

            pnlEdicion.Visible = false;

            var tmpPeriodo = new BLL.Periodo(Convert.ToString(e.CommandArgument));

            if (tmpPeriodo.Estado.EstadoId.Equals(1))
            {
                var vMensaje = "";

                BLL.Periodos.EliminaPeriodo(Convert.ToString(e.CommandArgument), ref vMensaje);

                Cargar_GridView();

                PopUpMessage(vMensaje);
            }

            PopUpMessage("Periodo no se puede Eliminar. Solamente un período iniciado puede ser eliminado");
            return;
        }
    }
}

